#pragma once

#include <string>

namespace Renderer
{
	enum class ShaderVertexAttributeType
	{
		Float,
		FloatVector2,
		FloatVector3,
		FloatVector4,
		FloatMatrix22,
		FloatMatrix33,
		FloatMatrix44,
		Int,
		IntVector2,
		IntVector3,
		IntVector4
	};

	class ShaderVertexAttribute
	{
	public:
		ShaderVertexAttribute(
			std::string name,
			int location,
			ShaderVertexAttributeType type,
			int length
			);

		std::string GetName();
		int GetLocation();
		ShaderVertexAttributeType GetType();
		int GetLength();

	private:
		std::string _name;
		int _location;
		ShaderVertexAttributeType _type;
		int _length;
	};
}